﻿using System;
using System.Collections.Generic;
using COMMON;
using DAL;
using VO;

namespace BLL
{
    public class ClienteBLL
    {

        #region Select
        public static Retorno<Cliente> Select()
        {
            var objReturn = new Retorno<Cliente>();
            try
            {
                //Lista dados do cliente
                objReturn.List = new ClienteDAL().SelectCliente();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }

        public static Retorno<Cliente> Select(int idCliente)
        {
            var objReturn = new Retorno<Cliente>();
            try
            {
                //Lista dados do cliente
                objReturn.List = new List<Cliente>();
                objReturn.List.Add(new ClienteDAL().SelectCliente(idCliente));
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectInicialCliente
        public static Retorno<Cliente> SelectInicialCliente()
        {
            var objReturn = new Retorno<Cliente>();
            try
            {
                //Lista inicial dos clientes
                objReturn.List = new ClienteDAL().SelectInicialCliente();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion


        #region SelectClientePesquisa
        public static Retorno<Cliente> SelectClientePesquisa(FiltroCliente obj)
        {
            var objReturn = new Retorno<Cliente>();
            try
            {
                //Lista de cliente pesquisa
                objReturn.List = new ClienteDAL().SelectClientePesquisa(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectClienteFiltro
        public static Retorno<Cliente> SelectClienteFiltro(Cliente obj)
        {
            var objReturn = new Retorno<Cliente>();
            try
            {
                //Lista dados do cliente
                objReturn.List = new ClienteDAL().SelectClienteFiltro(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }

        public static Retorno<Cliente> SelectClienteFiltro(FiltroCliente obj)
        {
            var objReturn = new Retorno<Cliente>();
            try
            {
                //Lista dados do cliente
                objReturn.List = new ClienteDAL().SelectClienteFiltro(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectUFFiltro
        public static Retorno<string> SelectUFFiltro()
        {
            var objReturn = new Retorno<string>();
            try
            {
                //Lista UF da tabela
                objReturn.List = new ClienteDAL().SelectUFFiltro();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectCidadeFiltro
        public static Retorno<string> SelectCidadeFiltro()
        {
            var objReturn = new Retorno<string>();
            try
            {
                //Lista Cidade da tabela
                objReturn.List = new ClienteDAL().SelectCidadeFiltro();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectBairroFiltro
        public static Retorno<string> SelectBairroFiltro()
        {
            var objReturn = new Retorno<string>();
            try
            {
                //Lista Bairro da tabela
                objReturn.List = new ClienteDAL().SelectBairroFiltro();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectBancosFiltro
        public static Retorno<string> SelectBancosFiltro()
        {
            var objReturn = new Retorno<string>();
            try
            {
                //Lista Bancos da tabela
                objReturn.List = new ClienteDAL().SelectBancosFiltro();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectConvenioFiltro
        public static Retorno<string> SelectConvenioFiltro()
        {
            var objReturn = new Retorno<string>();
            try
            {
                //Lista Convênio da tabela
                objReturn.List = new ClienteDAL().SelectConvenioFiltro();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion


        #region RetornarClienteParaSorteio
        public static Retorno<string> RetornarClienteParaSorteio(List<FiltroCliente> obj)
        {
            var objReturn = new Retorno<string>();
            try
            {
                //Lista Convênio da tabela
                new ClienteDAL().RetornaClienteParaSorteio(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

    }
}